package 算法;

public class 递归算法 {
    public static void main(String[] args) {
//        递归是指方法中调用方法本身的现象
//        递归的核心：1.找出口即什么时候不在调用方法     2.找规则，如何把大问题变成规模较小的问题
            /*
            例题：求100+99+98+。。。1的和（用递归计算）
            分析1~100的和为 100+（1~99）的和
               1~99的和为：99+（1~98）的和0
               1~98的和为：98+（1~97）的和
               .
               .
               .
               1~1之间的和  =1（递归的出口，即返回本身）
             */
        System.out.println(getSum(10));
    }
//    定义方法
    private static int getSum(int number){
        if (number==1){
            return 1;
        }
        return number*getSum(number-1);//阶乘
//        return number+getSum(number-1);求和
    }
}
